package br.com.news.dao.util;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class NewsHelper extends SQLiteOpenHelper {


	private static final String CATEGORIA = "News";
	private int versao;

	/**
	 * Cria instancia da NewsHelper
	 * 
	 * @param context
	 * @param name nome do banco de dados
	 * @param version vers�o do banco
	 */
	public NewsHelper(Context context, String name, int version) {
		super(context, name, null, version);
		versao = version;
	}

	
	@Override
	public void onCreate(SQLiteDatabase db) {
		for (int i = 1; i <= versao; i++) {

			Log.i(CATEGORIA, "Criando o banco de dados");

			executaVercoes(i, db);
			
		}
		Log.i(CATEGORIA, "Banco criado com sucesso!");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int versaoAntiga, int novaVersao) {
		for (int i = versaoAntiga+1; i <= novaVersao; i++) {

			Log.i(CATEGORIA, "Alterando o banco de dados");

			executaVercoes(i, db);
			
		}
		Log.i(CATEGORIA, "Banco criado com sucesso!");
	}
	
	private void executaVercoes(int i, SQLiteDatabase db){
		switch (i) {
		case RepositoryScript.VERSION_ONE:
			for (int j = 0; j < RepositoryScript.COMMANDS_VERSION_ONE.length; j++) {
				Log.i(CATEGORIA, RepositoryScript.COMMANDS_VERSION_ONE[j]);
				db.execSQL(RepositoryScript.COMMANDS_VERSION_ONE[j]);
			}
			break;
		case RepositoryScript.VERSION_TWO:
			for (int j = 0; j < RepositoryScript.COMMANDS_VERSION_TWO.length; j++) {
				Log.i(CATEGORIA, RepositoryScript.COMMANDS_VERSION_TWO[j]);
				db.execSQL(RepositoryScript.COMMANDS_VERSION_TWO[j]);
			}
			break;
		default:
			break;
		}
	}

}
